package com.fooddiary.dao;

import java.util.List;

import com.fooddiary.model.Model;

/**
 * Defines DAO methods for model
 * @author Created by andrey.kuznetsov <br>
 * @author Last modified by $Author$ <br>
 * @author Last modified on $Date$ at revision $Revision$ <br>
 */
public interface IModelDao extends IBaseDao{

	/**
	 * Return list of enabled entities for current model<br>
	 * @param <T>
	 * @param p_model - model entitty; {@link Model} <br>
	 * @param p_class - class of entity; {@link Class} <br>
	 * @return list of enabled entities; {@link List}<T>
	 */
	@SuppressWarnings("rawtypes")
	public <T> List<T> getEnabledEntitiesByModel(Model p_model, Class p_class);
	
	/**
	 * Returns count of enabled entities for given model <br>
	 * @param p_class - class of entity; {@link Class} <br>
	 * @param p_model - model; {@link Model} <br>
	 * @return count of entities {@link Long}
	 */
	@SuppressWarnings("rawtypes")
	public Long getEnabledEntitiesCountByModel(Class p_class, Model p_model);
}
